package com.isoft.permanprovidor.entity.sgman;

import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;

/**
 * 合同工
 **/
@Data
@TableName("TMIM_SYSTEM.TB_SGMAN_CONTRACTWORKER")
public class ContractWorker {
    @TableId(type = IdType.AUTO) // 主键ID，自增
    private Integer id; // 对应数据库字段 "ID"
    @ExcelProperty("账号绑定")
    private String sysuserid; // 用户账号绑定，对应数据库字段 "SYSUSERID"
    private Integer islock; // 是否锁定，0表示未锁定，1表示已锁定
    public static final Integer state_lock = 1; // 锁定状态常量
    public static final Integer state_non_lock = 0; // 未锁定状态常量

    @ExcelProperty("姓名")
    private String name; // 姓名，对应数据库字段 "NAME"
    @ExcelProperty("身份证号")
    private String idcard; // 身份证号，对应数据库字段 "IDCARD"
    @ExcelProperty("性别")
    private String gender; // 性别，对应数据库字段 "GENDER"
    @ExcelProperty("出生年月")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
    private Date birthdate; // 出生日期，对应数据库字段 "BIRTHDATE"
    @ExcelProperty("等级")
    private String grade; // 等级，对应数据库字段 "GRADE"
    @ExcelProperty("部门")
    private String department;// 部门，
    @ExcelProperty("正式编制")
    private String formalest;//  正式编制
    @ExcelProperty("人员分类")
    private String personnelcategory; // 人员类别，对应数据库字段 "PERSONNELCATEGORY"
    @ExcelProperty("文化程度")
    private String educationlevel; // 学历，对应数据库字段 "EDUCATIONLEVEL"
    @ExcelProperty("主职位")
    private String mainposition; // 主要职位，对应数据库字段 "MAINPOSITION"
    @ExcelProperty("头衔")
    private String title; // 职称，对应数据库字段 "TITLE"
    @ExcelProperty("籍贯")
    private String nativeplace; // 籍贯，对应数据库字段 "NATIVEPLACE"
    @ExcelProperty("民族")
    private String ethnicity; // 民族，对应数据库字段 "ETHNICITY"
    @ExcelProperty("入党日期")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
    private Date joinpartydate; // 入党日期，对应数据库字段 "JOINPARTYDATE"
    @ExcelProperty("政治面貌")
    private String politicalstatus; // 政治面貌，对应数据库字段 "POLITICALSTATUS"
    @ExcelProperty("全日制学历")
    private String fulltimeeducationlevel; // 全日制学历，对应数据库字段 "FULLTIMEEDUCATIONLEVEL"
    @ExcelProperty("全日制学位")
    private String fulltimedegree; // 全日制学位，对应数据库字段 "FULLTIMEDEGREE"
    @ExcelProperty("全日制毕业专业")
    private String fulltimegraduatedmajor; // 全日制毕业专业，对应数据库字段 "FULLTIMEGRADUATEDMAJOR"
    @ExcelProperty("在职教育学历")
    private String inserviceeducationlevel; // 在职学历，对应数据库字段 "INSERVICEEDUCATIONLEVEL"
    @ExcelProperty("在职教育学位")
    private String inservicdegree; // 在职学位，对应数据库字段 "INSERVICDEGREE"
    @ExcelProperty("在职教育毕业院校专业")
    private String inservicegraduatedmajor; // 在职毕业专业，对应数据库字段 "INSERVICEGRADUATEDMAJOR"
    @ExcelProperty("手机号")
    private String phonenumber; // 电话号码，对应数据库字段 "PHONENUMBER"
    @ExcelProperty("是否结婚")
    private String ismarried ; //是否结婚
    @ExcelProperty("配偶单位")
    private String spouseunit; // 配偶单位，对应数据库字段 "SPOUSEUNIT"
    @ExcelProperty("配偶职务")
    private String spouseposition; // 配偶职位，对应数据库字段 "SPOUSEPOSITION"
    @ExcelProperty("父母单位")
    private String parentsunit; // 父母单位，对应数据库字段 "PARENTSUNIT"
    @ExcelProperty("父母职务")
    private String parentsposition; // 父母职位，对应数据库字段 "PARENTSPOSITION"
    @ExcelProperty("子女工作单位")
    private String childrenworkunit; // 子女工作单位，对应数据库字段 "CHILDRENWORKUNIT"
    @ExcelProperty("子女职务")
    private String childrenposition; // 子女职位，对应数据库字段 "CHILDRENPOSITION"
    @ExcelProperty("正式编制")
    private String formalstaffing; // 正式编制，对应数据库字段 "FORMALSTAFFING"
    @ExcelProperty("父母姓名")
    private String parentsname; // 父母姓名，对应数据库字段 "PARENTSNAME"
    @ExcelProperty("子女姓名")
    private String childrenname; // 子女姓名，对应数据库字段 "CHILDRENNAME"
    @ExcelProperty("当年公休")
    private Integer annualleave; // 当年公休，对应数据库字段 "ANNUALLEAVE"
    @ExcelProperty("剩余公休")
    private Integer remainingleave; // 剩余公休，对应数据库字段 "REMAININGLEAVE"
}
